Data centers include data storage nodes for storing data. For example, a data center for a web-based application such as email may employ a number of data storage nodes that are geographically distributed. Each location may include a number of storage servers for storing data relating to users' email accounts, such as the text of emails, preferences for displaying emails and so forth. In such large, geographically distributed data centers, or even at a single location, there is often the need to relocate all, or a subset, of data of one node to another node, e.g., due to maintenance, hardware failures, decommissioning of old hardware, resource balancing, or simply a business decision.
Generally, existing approaches to data relocation are centrally driven and manually labor intensive. Typically, a separate dedicated server is used to manage the data relocation, and human operators have to get involved to achieve the desired results. Such approaches are not scalable, do not move the data in an optimum way, are hard to monitor, and are difficult to automate. There is no standardized way in the industry to address these issues. Instead, companies and other organizations that have data centers are addressing these issues with ad hoc solutions and architectures.